package com.shujia.wyh.day24;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/*
        字符流 = 字节流 + 编码表

        字符输出流：Writer -- OutputStreamWriter
        字符输入流：Reader

        OutputStreamWriter的构造方法：
            public OutputStreamWriter(OutputStream out)
            public OutputStreamWriter(OutputStream out,String charsetName)

        OutputStream的写方法：
            public void write(int c)
            public void write(char[] cbuf)
            public void write(char[] cbuf,int off,int len)
            public void write(String str)
            public void write(String str,int off,int len)


 */
public class OutputStreamWriterDemo1 {
    public static void main(String[] args) throws IOException {
//        FileOutputStream fos = new FileOutputStream("out7.txt");
        //创建字符输出流对象
//        OutputStreamWriter osw = new OutputStreamWriter(fos);
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("out7.txt"));

        //调用方法向文件中写入数据
        //public void write(int c)
//        osw.write(97);
//        osw.write(98);
//        osw.write(99);

        //public void write(char[] cbuf)
        //向文件中写入字符数组
        char[] chars = {'我','爱','中','国'};
        osw.write(chars);

        //public void write(char[] cbuf,int off,int len)
        //写入字符数组的一部分
        osw.write(chars,2,2);
        osw.write("\r\n");

        //public void write(String str)
        osw.write("小虎真帅！");

        //public void write(String str,int off,int len)
        //写入字符串的一部分
        String s = "李毅比小虎更帅！";
        osw.write(s,3,4);

        //刷新缓冲区
        //调用flush方法后，可以将缓冲区中的数据刷到文件中，并且字符流输出对象不会关闭
        osw.flush();

        //释放资源
        //包含了刷新操作，但是刷新完后，流对象关闭，后续无法再进行操作了。
        osw.close();

//        osw.write("nihao");
//        osw.flush();
    }
}
